// 时间标签枚举
export enum TimeLabel {
  SinceEstablishment = '成立以来',
  OneMonth = '近1个月',
  ThreeMonths = '近3个月',
}

// 净值记录
export interface NetWorthRecord {
  id: string;
  date: string;        // 净值日期
  value: number;       // 净值
}

// 理财产品
export interface Product {
  id: string;
  bank: string;                // 银行名称
  name: string;                // 产品名称
  netWorth: number;           // 最新单位净值
  netWorthDate: string;       // 最新净值日期
  netWorthHistory: NetWorthRecord[]; // 净值历史记录
  investments: Investment[];   // 投资记录
  historyRates: RateRecord[]; // 历史收益率记录
  createdAt: Date;            // 创建时间
  updatedAt: Date;            // 更新时间
}

// 投资记录
export interface Investment {
  id: string;
  purchaseDate: Date;          // 购买日期
  amount: number;              // 投资金额
  redeemDate?: Date;          // 赎回日期
}

// 收益率记录
export interface RateRecord {
  id: string;
  startDate: Date;           // 开始日期
  endDate: Date;             // 结束日期
  rate: number;              // 区间年化收益率
  dailyProfit: number;       // 万份收益
  timeLabel: TimeLabel;      // 时间标签
  advertisedRate: number;    // 银行宣传的年化率
}

// 产品列表项
export interface ProductListItem {
  id: string;
  bank: string;
  name: string;
  netWorth: number;           // 最新净值
  netWorthDate: string;       // 最新净值日期
  averageDailyProfit: number;  // 平均每万份收益
  oneMonthRate?: number;       // 近1个月年化
  establishmentRate?: number;  // 成立以来年化
}

// OCR识别结果
export interface OCRResult {
  date?: string;
  rate?: number;
  netWorth?: number;
  dailyProfit?: number;
}

// 收益计算结果
export interface YieldCalculation {
  totalAmount: number;        // 总投资金额
  totalProfit: number;        // 总收益
  annualizedRate: number;     // 年化收益率
  averageNetWorth: number;    // 平均净值
  startDate: Date;            // 开始日期
  endDate: Date;             // 结束日期
  daysCount: number;         // 持有天数
  dailyRate: number;         // 日化收益率
  dailyProfitPerTenThousand: number;  // 万份收益
}

// 导出空对象以使其成为模块
export {};